如果想要把service包成contain並部署到AWS,可以使用AWS ECS這個服務,並且搭配之前介紹的ECR,把build的image push到ECR,ECS就可以從ECR取得image進行部署,並透過iam管控存取image權限。如果不知道如何使用ECR,可以參考昨天的文章。
部署ECS的時候,需要設定network、Clusters和Task definitions,然後才能開始部署service,所以下面會依序介紹要如何開始。今天會先介紹設定network,如果沒有設定好network,ECS會抓不到ECR或docker hub的image,造成部署失敗,所以這個部分很重要,下面會介紹如何完成network設定。
在設定network的時候,需要指定VPC,如果還沒有VPC,需要新增一個VPC。
如果沒有適合的subnet,也需要新增一個subnet,並把這個subnet掛到指定的VPC底下。
設定internet gateway是為了可以讓VPC訪問外部網路,如果沒有可用的internet gateway,需要新增一個。
新增完之後,就可以把internet gateway掛到VPC底下。
新增和設定完VPC、subnet和internet gateway之後,可以到VPC頁面確認Resource map有沒有跟自己想像的一樣。
Route tables需要允許所有ip(除非你很確定image的ip)的流量,可以透過Internet gateway進入VPC,所以要把來源設為0.0.0.0/0。
少做了這一步,在後面部署service到ECS的時候,會出現沒有辦法下載image的情況。
如果想要透過cloudformation幫忙設定VPC,可以參考下面的文章。今天就先介紹到這裡,明天再繼續介紹要如何部署Service到ECS。
使用serverless framework設定EC2的VPC、Subnet和對外連線